package javazoom.jl.decoder;


/**
 * Instances of <code>BitstreamException</code> are thrown
 * when operations on a <code>Bitstream</code> fail.
 * <p>
 * The exception provides details of the exception condition
 * in two ways:
 * <ol><li>
 *              as an error-code describing the nature of the error
 * </li><br></br><li>
 *              as the <code>Throwable</code> instance, if any, that was thrown
 *              indicating that an exceptional condition has occurred.
 * </li></ol></p>
 *
 * @since 0.0.6
 * @author MDM  12/12/99
 */

@SuppressWarnings("serial")
public class BitstreamException extends JavaLayerException
        implements BitstreamErrors
{      
        private int errorcode = UNKNOWN_ERROR;
       
        public BitstreamException(String msg, Throwable t)
        {
                super(msg, t);  
        }
       
        public BitstreamException(int errorcode, Throwable t)
        {
                this(getErrorString(errorcode), t);
                this.errorcode = errorcode;
        }
       
        public int getErrorCode()
        {
                return errorcode;      
        }
       
       
        static public String getErrorString(int errorcode)
        {
                // REVIEW: use resource bundle to map error codes
                // to locale-sensitive strings.
               
                return "Bitstream errorcode "+Integer.toHexString(errorcode);
        }
       
       
}
